草庐IT

python - 静态库的ctypes?

全部标签

c# - 从静态对象中包含的 C# 字典中释放内存

我在使用WCFWeb服务时遇到了一些问题(一些转储、内存泄漏等),并且我运行了一个profillng工具(ANTS内存配置文件)。只是为了发现即使处理结束(我运行特定测试然后停止),第2代也有25%的内存用于Web服务。我追踪这段内存,发现我有一个充满(null,null)项目的字典对象,哈希码为-1。Web服务的工作流意味着在特定的处理过程中,项目被添加然后从字典中删除(只是简单的Add和Remove)。没什么大不了的。但似乎在删除所有项目后,字典中充满了(null,null)KeyValuePair秒。实际上有数千个,以至于它们占据了很大一部分内存并最终发生溢出,相应的强制应用程序

c# - 在 TPL 中返回一个空的静态任务是一种不好的做法吗?

有些情况下我想有条件地运行任务。我使用这样的某种扩展方法:publicstaticclassMyTaskExtension{privatestaticTasktheEmptyTask=Task.Factory.StartNew(()=>{});//ThisisthequestionpublicstaticTaskContinueWith(thisTasktask,TaskcontinuationTask,Funccondition){ifcondition(){...dothework}returntheEmptyTask;}}我的期望是theEmptyTask已经完成,所以基本上如果

c# - C# 中的静态变量

在C#中,有没有办法像VB.Net那样将静态变量放入方法中?StaticmyCollectionAsCollection 最佳答案 Whydoesn'tC#supportstaticmethodvariables?Q:InC++,it'spossibletowriteastaticmethodvariable,andhaveavariablethatcanonlybeaccessedfrominsidethemethod.C#doesn'tprovidethisfeature.Why?A:TherearetworeasonsC#do

c# - 在 .NET 中,是否在创建新的 AppDomain 时调用静态构造函数?

当我在C#中使用AppDomain.CreateDomain创建一个新的AppDomain时,当组件加载到新创建的AppDomain中时,是否会调用静态构造函数?有问题的程序集已经加载到当前域中。 最佳答案 否-静态构造函数只会在第一次访问静态成员或创建实例时调用。不过,静态构造函数将在每个AppDomain中调用一次,如果您担心的话。这不像在不同的AppDomain中执行过一次,新AppDomain中的类型未初始化:)请注意,没有静态构造函数的类型的类型初始值设定项可能比有静态构造函数的类型早于或晚于执行,具体实现细节change

c# - 私有(private)嵌套静态类 - 好的还是坏的做法?

将私有(private)静态类嵌套在非静态类中会被认为是一种不好的做法吗?publicclassOuter{privatestaticclassInner{}}这里的想法是“Outer”的所有实例都将共享对静态的访问。另一种方法可能是让内部类成为非静态类并使用它的静态实例:publicclassOuter{privatestaticinnerInstance=newInner();privateclassInner{}}类似的效果。这种方法的优点/缺点或其他注意事项是什么?我必须承认我几乎从不使用嵌套类,无论是否是静态的,但我对这个特定概念很感兴趣.. 最佳

c# - 为什么静态方法不能用作 ASMX Web 服务中的 Web 服务操作?

我只是想了解为什么我不能在Web服务中使用静态Web方法?为什么要限制?有人能给我简明的解释吗。 最佳答案 答案是:因为你做不到。它不是那样设计的。设计是创建一个web服务类的实例,然后调用一个实例方法。我只能猜测微软为什么这样设计。要确定,你必须问他们。考虑:允许使用静态方法并没有什么特别的好处。任何你可以用静态方法做的事情,你也可以用实例方法做。[WebService]类并不意味着是某个恰好用作Web服务的任意类。它应该是您为公开Web服务操作而创建的类。因此,无需支持已经存在且已经具有静态方法的类。SOAPHeader实现允许

c# - 如何找到所有静态构造函数?

我有一个包含许多C#项目的大型VisualStudio解决方案。如何找到所有的静态构造函数?我们有一些错误,其中一些做了愚蠢的事情,我想检查其他的。 最佳答案 在VisualStudio中,您可以使用正则表达式在代码中搜索。试试这个:static\s+\w+\s*\(如果您允许您的开发人员使用其他字符集,您可以调整字符集thanletter,numbersandunderscore.使用\w简化正则表达式之所以可行,是因为static关键字的其他用途至少需要一个返回类型。 关于c#-如何

c# - 如何在 Main() 方法之前在 C# 中运行静态初始化方法?

给定一个带有初始化方法的静态类:publicstaticclassFoo{//Classmembers...internalstaticinit(){//Dosomeinitialization...}}如何确保初始化程序在Main()之前运行?我能想到的最好的办法是将它添加到Foo:privateclassInitializer{privatestaticboolisDone=false;publicInitializer(){if(!isDone){init();isDone=true;}}}privatestaticreadonlyInitializerinitializer=n

c# - 如何获取基类的公共(public)静态方法?

我的基类有一个公共(public)静态方法,但是当我调用typeof(TDerived).GetMethods(BindingFlags.Public|BindingFlags.Static)时,我的方法没有返回。(TDerived当然以某种方式继承self的基类)。我在此查询的位置没有对我的基类的引用。我做错了什么? 最佳答案 使用BindingFlags.FlattenHierarchy标志:typeof(TDerived).GetMethods(BindingFlags.Public|BindingFlags.Static|B

c# - 静态构造函数会导致性能开销?

最近在dotnetpearls.com上阅读一篇文章here说静态ctors会受到大量的性能影响。不明白为什么? 最佳答案 我认为在大多数用例中“大量”是一种夸大其词。由于beforefieldinitflag的存在/不存在,拥有静态构造函数(即使它什么也不做)会影响类型初始化时间.当你有一个静态构造函数时,对时间有更严格的保证。对于大多数代码,我认为这没有太大区别-但如果您是紧密循环并访问类的静态成员,则可能会有所不同。就我个人而言,我不会太担心它-如果您怀疑它与您的真实应用程序相关,那么测试它而不是猜测。微基准测试很可能会夸大此